package com.ccnf.service;


import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.ccnf.model.entity.Exhibitor;
import com.ccnf.model.entity.SocialUser;

import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author zhangxieliu
 * @since 2018-04-13
 */
public interface UserService extends IService<SocialUser> {

    /**
     * 录入用户信息，如果录入的用户openId已经存在，则直接返回用户ID，否则插入用户信息后返回
     * @param socialUser 插入的用户信息
     * @return 返回用户ID
     */
    SocialUser saveUser(SocialUser socialUser);

    /**
     * 通过会管家平台的用户唯一标识ID获取用户表中对应的用户数据
     * @param unionId 会管家平台统一ID
     * @return 返回用户信息
     */
    SocialUser findByUnionId(String unionId);

    /**
     * 录入展商认证信息
     * @param exhibitor 展商认证信息
     */
    void saveExhibitor(Exhibitor exhibitor);

    /**
     * 修改展商认证信息
     * @param exhibitor 需要修改的展商认证信息
     */
    void modifyExhibitor(Exhibitor exhibitor);

    /**
     * 通过用户ID获取用户展商认证信息
     * @param userId 当前用户ID
     * @return 展商认证信息
     */
    Exhibitor findExhibitorByUserId(Long expoId, Long userId);

    /**
     * 获取所有展商认证信息列表
     * @param page 分页参数
     * @return 返回展商认证列表数据
     */
    Page<Map<String, Object>> findExhibitors(Long expoId, Page page);
}